/**
 * const [state, setState] = useState()
 * useEffect(() => {}, []) useLayoutEffect(() => {})
 * useMemo(() => {}, [])
 * memo(FC)
 * 
 * const [state, dispatch] = useReducer(reducer, initialState)
 * useCallback(() => {}, [])
 * createContext(defaultValue) useContext(context)
 * 
 * useRef()
 * 
*/